大规模集群日志分析现状
日志分析是了解系统硬件信息、负荷情况、安全状态,实现问题排查、解决问题的重要的途径。开发人员和运维人员实现日志分析通常采用的方式是,登录到目标节点,查看特定时间区间的特定日志。但是,如果运维对象是一个由数十、上百甚至成千台机器构成的集群,机器日志分布在各个节点,如此操作方式将十分繁琐低效。因此在具有一定规模的企业内部实现集中化日志管理平台,提供系统综合性的集群日志管理功能,对于效率的提升,工作繁琐度的降低而言是十分必要且重要的。
大规模集群日志分析现状
日志分析是了解系统硬件信息、负荷情况、安全状态,实现问题排查、解决问题的重要的途径。开发人员和运维人员实现日志分析通常采用的方式是,登录到目标节点,查看特定时间区间的特定日志。但是,如果运维对象是一个由数十、上百甚至成千台机器构成的集群,机器日志分布在各个节点,如此操作方式将十分繁琐低效。因此在具有一定规模的企业内部实现集中化日志管理平台,提供系统综合性的集群日志管理功能,对于效率的提升,工作繁琐度的降低而言是十分必要且重要的。
问题解决
针对上述需求,星环研发出海量日志分析平台Milano,提供集中式的集群日志分析服务,既可以用于物理集群日志分析,也可以部署到云上对各租户内的日志进行处理。Milano采用Filebeat+Kafka+Logtash+Elasticsearch+Kibana的架构,为用户提供便利的日志查询和分析接口实现日志检索和统计分析,以及基于日志的预警功能,克服了执行Linux命令的传统方式在大规模集群中做高级统计分析的障碍,实现可视化的监测平台,为海量日志分析带来极大的便利。
Milano结构和功能介绍
Milano是一种分布式日志收集和分析系统,它基于ELK 开发,提供了一种集中式的日志收集和分析解决方案,在一个统一界面实现对系统日志检索和分析,帮助运维和开发人员对系统进行监控和错误诊断。
Milano主要提供了以下功能,这些功能通过Milano架构中各个组件之间的协调配合实现:
分布式日志收集。
日志的分发。
日志信息抽取与处理。
日志查询检索。
日志报表。
日志收集
Milano 采用日志采集工具Filebeat 作为代理运行在服务组件所在的机器,对日志进行收集,并根据不同的租户目录分发到不同的Kafka Topic。 由于Filebeat专注于“日志收集”一件事情,所以简单高效,同Logstash相比,Filebeat具有轻量、安全的特点,它只占用宿主机很少的资源,而且可以保证很好的性能以及较高的吞吐。
日志分发
采集端收集到日志后,需要通过消息队列做缓存和分发。Milano 采用Kafka 作为缓存和分发站,能够起到削峰的作用。虽然整个平台共享Kafka集群,但是Milano会为每个租户分配一个专用Topic,以保证信息隔离性。同时考虑到安全隐私问题,Milano还会对Topic的读写进行认证和授权。
日志处理
由于不同来源的日志有各自的格式,且内容比较杂乱,不方便理解分析,因此在日志入库前,Milano会采用Logstash逐条处理日志,依靠Logstash的日志过滤分析功能,对日志进行统一预处理,从每条日志中提取有效信息。
日志检索
Milano采用基于Elasticsearch改进后的Search作为检索引擎。Search是可扩展的分布式全文搜索和分析引擎,它利用层次化存储、堆外内存管理等创新性技术,极大的提高了系统的可用性和健壮性,可以有效避免GC问题对系统的影响。
日志展现
Milano采用Kibana作为用户的日志运维界面。Kibana提供友好的可视化分析平台,实现易用的接口和方式进行日志检索与查询。用户可以在Kibana的界面上建立报表,将日志数据处理成不同的表格和图表等信息从而展示高级的内容,对日志进行可视化的日常分析。
Milano功能优势
高级的日志管理
全链路高吞吐
Milano的构成组件之中的Kafka和Elasticsearch本身具备高吞吐可扩展特性,可以根据压力灵活扩展。Milano单节点的每秒日志收集量可达15000条,3节点的Milano监控集群日志量每日收集可以达到10亿条。同时,Milano保障低延迟的入库,从日志产生到入库10秒内就可以完成。
全链路安全管控
Milano在日志收集、传输、分析等各个环节上实现安全管控。数据的通信过程经过Kerberos加密,保证安全。另外每个租户的数据只允许进入授权的Kafka Topic或Elasticsearch Index,使各个租户日志之间相互隔离,保证数据隐私。此外,对于可视化的监控界面Kibana,每个用户都可以对自己的Kibana实例进行独立的控制,通过LDAP实现安全认证与访问。
全链路高可用
Milano的高可用性通过以下两方面保证。首先,Kafka、Elasticsearch、Filebeat等服务自身都提供状态监控;其次,各模块支持多活,保证一定的副本数量,发生错误时及时恢复,可保证数据高可用,以及数据不丢不重。
结语与展望
Milano解决了企业对于大规模集群的日志分析与检索的需求,具有高吞吐和低延迟的特性,架构水平可扩展,同时提供可靠的安全保护,谨防日志泄漏。目前我们还在将人工智能技术引入Milano,利用机器学习和算法,提供基于日志的高级的文本处理和异常检测,实现智能化自动化的学习,提供更加易用的分析体验。
往期原创文章
大数据开放实验室由星环信息科技(上海)有限公司运营,专门致力于大数据技术的研究和传播。若转载请在文章开头明显注明“文章来源于微信订阅号——大数据开放实验室”,并保留作者和账号介绍。